/*
==================================================================
LTrim(string):去除左边的空格
==================================================================
*/

function LTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(0)) != -1)
    {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {
            j++;
        }
        s = s.substring(j, i);
    }
    return s;
}

 

/*
==================================================================
RTrim(string):去除右边的空格
==================================================================
*/

function RTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
 
    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }
        s = s.substring(0, i+1);
    }
    return s;
}

 

/*
==================================================================
Trim(string):去除前后空格
==================================================================
*/

function Trim(str)
{
    return RTrim(LTrim(str));
}

 

/*
========================================================================
函数原形：	isEmpty(string objStr) 
	
功    能：	判断字符串是否为空

参数说明：	objStr	:	目标字符串		  	

			-----------------------------------------------------------
			Edit By Rogers At 2004-12-30	E_Mail:	acegeng@sohu.com
=======================================================================
*/
function isEmpty(objStr)
{
	if(objStr == "" || Trim(objStr) == "")
		return true;
	else
		return false;
}


/*
========================================================================
函数原形：	isFloat(string objStr,string sign) 
	
功    能：	判断是否为浮点数、正浮点数+0、正浮点数、负浮点数+0、负浮点数

参数说明：	objStr	:	目标字符串
		  	sign	:	符号字符串，有效值(无、+-0、+0、+、-0、-)

			-----------------------------------------------------------
			Edit By Rogers At 2004-12-30	E_Mail:	acegeng@sohu.com
=======================================================================
*/
function isFloat(objStr,sign)
{
  	var reg;    
   	var bolzero;    

	objStr = Trim(objStr);
  	if(Trim(objStr)=="")
    {
        return false;
    }
    else
    {
        objStr=objStr.toString();
    }    

    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-0";
    }

  
	switch(sign)
    {
        case "+-0":	//正负浮点数+0
        			
            		reg=/^((-?|\+?)\d+)(\.\d+)?$/;
            		break;
            		
       	case "+-":	//非0浮点数
       	     		
       	     		reg=/(^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))|(^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
            		break;
            		
        case "+0": 	//正浮点数+0
                	
                	reg=/^\+?\d+(\.\d+)?$/;
                	break;
                	
        case "+":   //正浮点数
                	
                	reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/; 
            		break;
            		
      	case "-0":  //负浮点数+0
      	   			 
		          	reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
		          	break;
       
        case "-":	//负浮点数
        			
		            reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
		          	break;
 		           
        default:
		            alert("检查isFloat函数符号参数，只可为(+-0、+0、+、-0、-)");
		            return false;
		            break;
    }

	var r=objStr.match(reg);

    if(r==null)
    {
        return false;
    }
    else
    {        
        return true;     
    }

}


/*
========================================================================
函数原形：	isInt(string objStr,string sign) 
	
功    能：	判断是否为整数、非0整数、正整数+0、正整数、负整数+0、负整数

参数说明：	objStr	:	目标字符串
		  	sign	:	符号字符串，有效值(无、+-0、+0、+、-0、-)

			-----------------------------------------------------------
			Edit By Rogers At 2004-12-30	E_Mail:	acegeng@sohu.com
=======================================================================
*/
function isInt(objStr,sign)
{
  	var reg;    
   	var bolzero;    

  	if(Trim(objStr)=="")
    {
        return false;
    }
    else
    {
        objStr=objStr.toString();
    }    

    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-0";
    }

  
	switch(sign)
    {
        case "+-0":	//正负整数+0
        			
                  	reg=/(^-?|^\+?)\d+$/;            
            		break;
      	
      	case "+-":	//非0整数 
      				
      				reg=/(^\+?[0-9]*[1-9][0-9]*)|(^-[0-9]*[1-9][0-9]*)$/;
       				break;
            		
        case "+0": 	//正整数+0
                	
                	reg=/^[0-9]*[0-9][0-9]*$/;
					break;
                	
        case "+":   //正整数
                	
                	reg=/^\+?[0-9]*[1-9][0-9]*$/;
            		break;
            		
      	case "-0":  //负整数+0
      	   			       	
               		reg=/^-[0-9]*[0-9][0-9]*$/;
		          	break;
       
        case "-":	//负整数
        			
			      	reg=/^-[0-9]*[1-9][0-9]*$/;
	          		break;
 		           
        default:
		            alert("检查isInt函数符号参数，只可为(+-0、+0、+、-0、-)");
		            return false;
		            break;
    }

	var r=objStr.match(reg);

    if(r==null)
    {
        return false;
    }
    else
    {        
        return true;     
    }

}

/*
========================================================================
函数原形：	isIP(string testIP) 
	
功    能：	判断是否为合法IP值

参数说明：	testIP	:	目标ip值串

			-----------------------------------------------------------
			Edit By Rogers At 2004-12-30	E_Mail:	acegeng@sohu.com
=======================================================================
*/
function isIP(testIP)
{
 	var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
 	var re=testIP.split(".")
 	return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
}

/*
========================================================================
函数原形：	isPhone(string testPhone) 
	
功    能：	判断是否为合法电话号码值
要	 求：
　　			(1)电话号码由数字、"("、")"和"-"构成
　　			(2)电话号码为3到8位
　　			(3)如果电话号码中包含有区号，那么区号为三位或四位
　　			(4)区号用"("、")"或"-"和其他部分隔开
　　			(5)移动电话号码为11或12位，如果为12位,那么第一位为0
　　			(6)11位移动电话号码的第一位和第二位为"13"
　　			(7)12位移动电话号码的第二位和第三位为"13"　

参数说明：	testPhone	:	目标电话号码值串

			-----------------------------------------------------------
			Edit By Rogers At 2004-12-30	E_Mail:	acegeng@sohu.com
=======================================================================
*/

function isPhone(testPhone) 
{
	var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
	return reg.test(testPhone);
}


 //检测长度
function fucCheckLength(strTemp)
{
 var i,sum;
 sum=0;
 for(i=0;i<strTemp.length;i++)
 {
  if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))
   sum=sum+1;
  else
   sum=sum+2;
 }
 return sum;
}

